﻿#pragma once
using namespace std;
struct color
{
public:
	Uint8 r;
	Uint8 g;
	Uint8 b;
	color(int in_r, int in_g, int in_b)
	{
		r = in_r;
		g = in_g;
		b = in_b;
	}
};

class image 
{
public:
	SDL_Surface * src; //실제 이미지 보관 구조체 포인터

	SDL_Rect size; //이미지의 가로세로 좌우폭
	SDL_Rect offset; //이미지의 표시영역 설정
	SDL_Rect xy; //이미지의 표시 위치 설정 

	int sprite; //이미지가 몇개의 스프라이트로 구성되어있는지 없을 경우 1
	int sprite_len; //이미지의 스프라이트가 몇 픽셀로 구성되어 있는지 없을경우 전체폭

	bool flag_img; 
	image(void);
	image(SDL_Surface * input_surface);
	image(SDL_Surface * input_surface, color *colorkey);
	image(SDL_Surface * input_surface, color *colorkey, int sprite_count);

	image(string filename);
	image(string filename, color *colorkey);
	image(string filename, color *colorkey, int sprite_count);
	
	bool load(string filename);
	bool load(string filename, color * colorkey);
	bool load(string filename, color * colorkey, int sprite);

	bool load(SDL_Surface * input_surface);
	bool load(SDL_Surface * input_surface, color * colorkey);
	bool load(SDL_Surface * input_surface, color * in_color, int in_sprite);

	void set_xy(int in_x=0, int in_y=0);
	bool load_image(string filename); //파일읽어오기
	int colorkey(color *colorkey);
	~image(void);
};
